import asyncio
import json

from workflow.ReportAnalysisWorkflow import get_workflow


async def main():
    """主函数 - 报表分析工作流演示"""

    # 配置参数
    API_KEY = "88c47834-f18d-4c83-873a-11a8a5dbfb36"
    BASE_URL = "https://ark.cn-beijing.volces.com/api/v3/"

    try:
        # 获取工作流实例
        print("正在初始化报表分析工作流...")
        workflow = await get_workflow(API_KEY, BASE_URL)

        # 检查工作流状态
        status = await workflow.get_workflow_status()
        print(f"工作流状态: {json.dumps(status, indent=2, ensure_ascii=False)}")

        # 用户查询示例 - 支持各种类型的报表分析
        user_queries = [
            "帮我分析2024年1月到6月的财务情况",
            "分析最近3个月的销售数据趋势",
            "统计用户活跃度数据",
            "分析产品库存情况"
        ]

        for i, user_query in enumerate(user_queries, 1):
            print(f"\n=== 示例 {i} ===")
            print(f"用户查询: {user_query}")

            # 执行报表分析工作流
            print("开始执行报表分析工作流...")
            result = await workflow.analyze_report_data(user_query)

            # 输出结果
            print(f"状态: {result['status']}")
            print(f"用户查询: {result['user_query']}")

            if result['status'] == 'success':
                print(f"SQL查询: {result['sql_query']}")
                print(f"查询数据: {result['data']}")
                print(f"图表配置: {result['chart_config']}")

                # 尝试解析图表配置
                try:
                    chart_config = json.loads(result['chart_config'])
                    print(f"图表配置解析成功，图表类型: {chart_config.get('title', {}).get('text', '未知')}")
                except json.JSONDecodeError:
                    print("图表配置不是有效的JSON格式")
            else:
                print(f"错误: {result.get('error', '未知错误')}")

    except Exception as e:
        print(f"程序执行失败: {str(e)}")
        import traceback
        traceback.print_exc()


if __name__ == "__main__":
    asyncio.run(main())
